package cau.se.project.view.method;

import java.util.List;

import cau.se.project.data.method.RowControl;

public interface DSMChangeListener {
	/**
	 * 각 view에서 dsm이 바뀌었을 때 이 메소드를 호출토록 한다<br/>
	 * ex> row 이름 변경, dependency 변경 등
	 */
	public void
		onDSMChanged();
	
	/**
	 * 각 view에서 tree가 바뀌었을 때 이 메소드를 호출토록 한다<br/>
	 * ex> 트리노드 이름 변경, 트리 구조 변경 등
	 */
	public void
		onCLSXChanged();
	
	/**
	 * 선택된 노드가 바뀐 경우 호출하도록 함
	 * @param row
	 */
	public void
		onSelectionChanged(RowControl row);
	
	/**
	 * 트리 expand가 변경되었을 때 호출
	 * @param list
	 */
	public void
		onExpandChanged(List<RowControl> list);
	
	/**
	 * 삭제 요청
	 */
	public void
		onRequestDelete();
	
	/**
	 * 이름 바꾸기 요청
	 */
	public void
		onRequestRename();
	
	/**
	 * grouping 요청
	 */
	public void
		onRequestGroup();
	
	/**
	 * ungroup 요청
	 */
	public void
		onRequestUngroup();
	
	/**
	 * sort 요청
	 */
	public void
		onRequestSort();
}
